<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html><head>
<title>type</title>
</head><body>
<p>[<a href="mxdoc.htm">mainpage</a>]
[<a href="tags.htm">tags</a>]<br>
<h1>tag: type</h1><ul><li>
<a name="MX_ATOM"><code>MX_ATOM</code></a>
<p>
<p><b>Base class for reference counting and delete locking</b><p>

MX_ATOM is an object intended to be used as a base class to
implement reference counting and delete locking in the derived class.
<p>
Properly constructed MX_ATOM objects are bit-copy-correct which means that
a binary copy retains proper functioning.  The copied object should not be
used after the binary copy.
<p>
Because MX_ATOM is bit-copy-correct it can safely be placed in a MX_VECTOR
or the memory realloc'd.  
(<a href="../include/deds/atom.h">../include/deds/atom.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_atom.htm">atom</a>)
<p></li>
<li>
<a name="MX_LOCK"><code>MX_LOCK</code></a>
<p>
<p><b>Stop MX_ATOMs from getting deleted</b><p>
This object implements a delete lock for an MX_ATOM.  While a valid 
MX_LOCK exists for an MX_ATOM object (or one derived from it) the
object is guaranteed not be deleted.  An object can have multiple locks
placed on it. <p>
MX_LOCK is NOT bit-copy-correct so it cannot safely be placed in a MX_VECTOR
or in memory that gets realloc'd.  
(<a href="../include/deds/atom.h">../include/deds/atom.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_atom.htm">atom</a>)
<p></li>
<li>
<a name=" define MX_REF(type)"><code># define MX_REF(type)</code></a>
<p>
<p><b>A reference type, a typed MX_LOCK</b><p>
This macro defines a MX_LOCK where the target is of some defined type.
A reference functions the same way as a MX_LOCK except the locked (i.e. referenced)
object is available in a typesafe way.  A pointer to the reference target is
available with the MXREF macro.   
(<a href="../include/deds/atom.h">../include/deds/atom.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_atom.htm">atom</a>)
<p></li>
<li>
<a name="define MX_DLLIST(type)"><code>#define MX_DLLIST(type)</code></a>
<p>
<p><b>Double linked list</b><p>
This macro declares a double linked list structure.  The list
surrounding type can then be manipulated by the other mx_dllist_* and 
MX_DLLIST_* macros.  The type should be initialized with all zeros.  
(<a href="../include/deds/dllist.h">../include/deds/dllist.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_dllist.htm">dllist</a>)
<p></li>
<li>
<a name="define MX_DLLIST_ELEM(type)"><code>#define MX_DLLIST_ELEM(type)</code></a>
<p>
<p><b>Elements for a double linked list</b><p>
This macro declares elements for a double linked list structure.
This delcaration must be included in a struct with an appropriate type.  The
surrounding type can then be manipulated by the other mx_dllist_* and 
MX_DLLIST_* macros.  The surrounding type should be initialized with all 
zeros.  
(<a href="../include/deds/dllist.h">../include/deds/dllist.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_dllist.htm">dllist</a>)
<p></li>
<li>
<a name="define MX_DLLIST_NODE(type,list)"><code>#define MX_DLLIST_NODE(type,list)</code></a>
<p>
<p><b>Elements for a double linked list node</b><p>
This macro declares elements for a double linked list node
structure.  This delcaration must be included in a struct with an appropriate 
type.  The surrounding type can then be manipulated by the other mx_dllist_* 
and MX_DLLIST_* macros.  The surrounding type should be initialized with all
zeros.  
(<a href="../include/deds/dllist.h">../include/deds/dllist.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_dllist.htm">dllist</a>)
<p></li>
<li>
<a name="typedef void* (*MX_ALLOC) (size_t bytes);"><code>typedef void* (*MX_ALLOC) (size_t bytes);</code></a>
<p>
<p><b>A stdlib malloc-like function.  </b><p>
(<a href="../include/deds/memtype.h">../include/deds/memtype.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_memtype.htm">memtype</a>)
<p></li>
<li>
<a name="typedef void* (*MX_REALLOC) (void* ptr, size_t bytes);"><code>typedef void* (*MX_REALLOC) (void* ptr, size_t bytes);</code></a>
<p>
<p><b>A stdlib realloc-like function.  </b><p>
(<a href="../include/deds/memtype.h">../include/deds/memtype.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_memtype.htm">memtype</a>)
<p></li>
<li>
<a name="typedef void (*MX_FREE) (void* ptr);"><code>typedef void (*MX_FREE) (void* ptr);</code></a>
<p>
<p><b>A stdlib free-like function.  </b><p>
(<a href="../include/deds/memtype.h">../include/deds/memtype.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_memtype.htm">memtype</a>)
<p></li>
<li>
<a name="MX_ALLOCATOR"><code>MX_ALLOCATOR</code></a>
<p>
<p><b>A standard memory alloc/realloc/free tool  </b><p>
(<a href="../include/deds/memtype.h">../include/deds/memtype.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_memtype.htm">memtype</a>)
<p></li>
<li>
<a name="MX_RECT"><code>MX_RECT</code></a>
<p>
<p><b>A basic rectangle</b><p>
This type is a basic rectangle with an upper-left at x1,y1 and 
lower-right at x2, y2.  
(<a href="../include/deds/rect.h">../include/deds/rect.h</a>)
<p>member: <b>
		int x1</b> Left coordinate  
(<a href="../include/deds/rect.h">../include/deds/rect.h</a>)
<p>member: <b>
		int y1</b> Upper coordinate  
(<a href="../include/deds/rect.h">../include/deds/rect.h</a>)
<p>member: <b>
		int x2</b> Right coordinate  
(<a href="../include/deds/rect.h">../include/deds/rect.h</a>)
<p>member: <b>
		int y2</b> Lower coordinate  
(<a href="../include/deds/rect.h">../include/deds/rect.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_rect.htm">rect</a>)
<p></li>
<li>
<a name="MX_RECTATOM_DATA"><code>MX_RECTATOM_DATA</code></a>
<p>
<p><b>MX_RECT with reference counting  </b><p>
(<a href="../include/deds/rectatom.h">../include/deds/rectatom.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_rectatom.htm">rectatom</a>)
<p></li>
<li>
<a name="MX_STRING"><code>MX_STRING</code></a>
<p>
<p><b>A string object  </b><p>
(<a href="../include/deds/string.h">../include/deds/string.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_string.htm">string</a>)
<p></li>
<li>
<a name="define MX_VECTOR(type)"><code>#define MX_VECTOR(type)</code></a>
<p>
<p><b>A 100% typesafe generic vector for C</b><p>
This macro functions as a type delaration for a vector of user-defined
type.  
(<a href="../include/deds/vector.h">../include/deds/vector.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_vector.htm">vector</a>)
<p></li>
<li>
<a name="define MX_VECTOR_ITERATOR(type)"><code>#define MX_VECTOR_ITERATOR(type)</code></a>
<p>
<p><b>An iterator for a MX_VECTOR</b><p>
This macro functions as a type declaration for an iterator for a
similarly typed MX_VECTOR.  
(<a href="../include/deds/vector.h">../include/deds/vector.h</a>)<br>(library <a href="deds.htm">deds</a> : module <a href="deds_vector.htm">vector</a>)
<p></li>
<li>
<a name="MX_BITMAP"><code>MX_BITMAP</code></a>
<p>
<p><b>A bitmap type  </b><p>
(<a href="../include/degfx/bitmap.h">../include/degfx/bitmap.h</a>)<br>(library <a href="degfx.htm">degfx</a> : module <a href="degfx_bitmap.htm">bitmap</a>)
<p></li>
<li>
<a name="typedef MX_PIXEL* MX_BITMAP_ITER;"><code>typedef MX_PIXEL* MX_BITMAP_ITER;</code></a>
<p>
<p><b>Fast pixel-level iterator for a bitmap  </b><p>
(<a href="../include/degfx/bitmap.h">../include/degfx/bitmap.h</a>)<br>(library <a href="degfx.htm">degfx</a> : module <a href="degfx_bitmap.htm">bitmap</a>)
<p></li>
<li>
<a name="MX_GFX_ARGS"><code>MX_GFX_ARGS</code></a>
<p>
<p><b>Graphic driver information</b><p>
    The basic graphic driver arguments and parameters.
    All elements can be replaced with 0 and a default choice will be made.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                int w, h, c;</b> The graphics width, height and color depth in bits.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                const char *title;</b> The title of the graphics window (for windowed modes)  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                struct MX_BITMAP *buffer;</b> The buffer used for redrawing.  Larger buffers mean more 
                efficient redraws at the cost of more memory.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                const struct MX_DRIVER *driver;</b> The requested driver.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                MX_REDRAW_FUNC redraw;</b> The redraw function.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                MX_RECT screen;</b> The area of the graphics screen.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
                unsigned int session;</b> The session counter is incremented every time the graphics
                mode is changed.  Keeping track of the session number you can
                check if the graphics mode has been changed.  
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)
<p>member: <b>
         MX_BITFIELD(pointer);</b> The pointer field is non-zero if the platform draws it's 
                own mouse.   
(<a href="../include/degfx/driver.h">../include/degfx/driver.h</a>)<br>(library <a href="degfx.htm">degfx</a> : module <a href="degfx_driver.htm">driver</a>)
<p></li>
<li>
<a name="MX_FONT"><code>MX_FONT</code></a>
<p>
<p><b>A font  </b><p>
(<a href="../include/degfx/font.h">../include/degfx/font.h</a>)<br>(library <a href="degfx.htm">degfx</a> : module <a href="degfx_font.htm">font</a>)
<p></li>
<li>
<a name="MX_ALERT"><code>MX_ALERT</code></a>
<p>
<p><b>Basic alert window  </b><p>
(<a href="../include/depui/alert.h">../include/depui/alert.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_alert.htm">alert</a>)
<p></li>
<li>
<a name="MX_EVENT"><code>MX_EVENT</code></a>
<p>
<p><b>Event types  </b><p>
(<a href="../include/depui/corepui.h">../include/depui/corepui.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_corepui.htm">corepui</a>)
<p></li>
<li>
<a name="typedef void (*MX_HANDLER) (struct MX_WIN* win);"><code>typedef void (*MX_HANDLER) (struct MX_WIN* win);</code></a>
<p>
<p><b>Event handler</b><p>
Functions of this type are assoctaied with windows.  These functions process
all events bieng passed to all objects within the window.  
(<a href="../include/depui/corepui.h">../include/depui/corepui.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_corepui.htm">corepui</a>)
<p></li>
<li>
<a name="MX_WIN"><code>MX_WIN</code></a>
<p>
<p><b>A window object  </b><p>
(<a href="../include/depui/corepui.h">../include/depui/corepui.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_corepui.htm">corepui</a>)
<p></li>
<li>
<a name="MX_EDITTEXT"><code>MX_EDITTEXT</code></a>
<p>
<p><b>An editable text object  </b><p>
(<a href="../include/depui/edittext.h">../include/depui/edittext.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_edittext.htm">edittext</a>)
<p></li>
<li>
<a name="MX_FILESEL"><code>MX_FILESEL</code></a>
<p>
<p><b>File selector window</b><p>
This type is a standard DEPUI file selector.  
(<a href="../include/depui/filesel.h">../include/depui/filesel.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_filesel.htm">filesel</a>)
<p></li>
<li>
<a name="MX_FONTSEL"><code>MX_FONTSEL</code></a>
<p>
<p><b>A font seletion window  </b><p>
(<a href="../include/depui/fontsel.h">../include/depui/fontsel.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_fontsel.htm">fontsel</a>)
<p></li>
<li>
<a name="MX_GFXSEL"><code>MX_GFXSEL</code></a>
<p>
<p><b>Graphics mode selector  </b><p>
(<a href="../include/depui/gfxsel.h">../include/depui/gfxsel.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_gfxsel.htm">gfxsel</a>)
<p></li>
<li>
<a name="MX_GFXSEL_INFO"><code>MX_GFXSEL_INFO</code></a>
<p>
<p><b>Graphics mode selector information</b><p>
When a graphics mode has been selected by the dialog a MX_GFXSEL_OK
event is sent to the parent window.  Then mx_gfxsel_info() can be called to
get information about the graphics mode selected.  A pointer to this type is
returned.  
(<a href="../include/depui/gfxsel.h">../include/depui/gfxsel.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_gfxsel.htm">gfxsel</a>)
<p></li>
<li>
<a name="MX_LISTELEM"><code>MX_LISTELEM</code></a>
<p>
<p><b>A list element type  </b><p>
(<a href="../include/depui/list.h">../include/depui/list.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_list.htm">list</a>)
<p></li>
<li>
<a name="MX_LIST"><code>MX_LIST</code></a>
<p>
<p><b>A scrollable list object</b><p>
This object contains a number of selecteable elements in a (if necessary)
scrollable area.  
(<a href="../include/depui/list.h">../include/depui/list.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_list.htm">list</a>)
<p></li>
<li>
<a name="MX_SCROLL"><code>MX_SCROLL</code></a>
<p>
<p><b>Scrollable area</b><p>
This is an scrollable area object.  
(<a href="../include/depui/scroll.h">../include/depui/scroll.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_scroll.htm">scroll</a>)
<p></li>
<li>
<a name="MX_SCROLL2"><code>MX_SCROLL2</code></a>
<p>
<p><b>Scrollable area with title</b><p>
This is an scrollable area object with a title.  
(<a href="../include/depui/scroll.h">../include/depui/scroll.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_scroll.htm">scroll</a>)
<p></li>
<li>
<a name="MX_SLIDER"><code>MX_SLIDER</code></a>
<p>
<p><b>Slider type  </b><p>
(<a href="../include/depui/slider.h">../include/depui/slider.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_slider.htm">slider</a>)
<p></li>
<li>
<a name="MX_TEXTEDITOR"><code>MX_TEXTEDITOR</code></a>
<p>
<p><b>Text editor  </b><p>
(<a href="../include/depui/textedit.h">../include/depui/textedit.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_textedit.htm">textedit</a>)
<p></li>
<li>
<a name="MX_THEMESEL"><code>MX_THEMESEL</code></a>
<p>
<p><b>A theme seletion window  </b><p>
(<a href="../include/depui/themesel.h">../include/depui/themesel.h</a>)<br>(library <a href="depui.htm">depui</a> : module <a href="depui_themesel.htm">themesel</a>)
<p></li>
<li>
<a name="define MX_BITFIELD(a)"><code>#define MX_BITFIELD(a)</code></a>
<p>
<p><b>Portable bitfield</b><p>
A macro to define a bitfield variable.  
(<a href="../include/detk/bitfield.h">../include/detk/bitfield.h</a>)<br>(library <a href="detk.htm">detk</a> : module <a href="detk_bitfield.htm">bitfield</a>)
<p></li>
<li>
<a name="typedef void (*MX_FLUSH_FUNC) (MX_RECT* rect);"><code>typedef void (*MX_FLUSH_FUNC) (MX_RECT* rect);</code></a>
<p>
<p><b>Flush callback function for dirty rectangle updating</b><p>
This typedef defines a user defined callback function where dirty
portions of the screen are determined.  Inside the callback the user should
place code to actually update the screen area.  The updating rectangle can be
modified by the callback to indicate what portions of the screen are actually
updated.   
(<a href="../include/detk/drs.h">../include/detk/drs.h</a>)<br>(library <a href="detk.htm">detk</a> : module <a href="detk_drs.htm">drs</a>)
<p></li>
<li>
<a name="typedef MX_VECTOR(MX_RECT) MX_REGION;"><code>typedef MX_VECTOR(MX_RECT) MX_REGION;</code></a>
<p>
<p>Regions are vectors of rectangles  
(<a href="../include/detk/region.h">../include/detk/region.h</a>)<br>(library <a href="detk.htm">detk</a> : module <a href="detk_region.htm">region</a>)
<p></li>
</ul><p>Generated by <a href="http://www.deleveld.dds.nl/mxdoc/index.htm">MXDOC</a> 2.2 on Sun Feb  4 15:16:26 2007


</body></html>
